package com.tiancheng.onecode.model.response.admin;

import com.tiancheng.onecode.model.dto.PlatformMerchantUserDetailDTO;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;

/**
 * @Author: kellen
 * @Description: 商户详情-业务信息
 * @Date: create in 2024/12/13 17:32
 */
@Data
public class PlatformMerchantBusinessInfoRes implements Serializable {
    /**
     * 平台关联商户id
     */
    @NotNull(message = "平台关联商户id不能为空")
    private Long platformMerchantId;

    /**
     * 经营项目简述（营业类目描述）
     */
    @NotBlank(message = "经营项目简述不能为空")
    private String shopBusiness;
    /**
     * 交易商户编码，下单时用
     */
    private String tradeMerchantCode;
    /**
     * 交易支付通道编码
     */
    private String tradeChannelCode;
    /**
     * 支付渠道名称
     */
    private String tradeChannelName;
    /**
     * 收款码
     */
    private String qr;
    /**
     * 商户状态
     *  @see com.tiancheng.onecode.enums.MerchantStatusEnums
     */
    private Integer merchantStatus;

    private String merchantStatusDescribe;
    // ------------------------------------------开户行信息------------------------------------------
    /**
     * 开户行名称
     */
    @NotBlank(message = "开户行名称不能为空！")
    private String bankAcctName;
    /**
     * 开户行行号
     */
    @NotBlank(message = "开户行行号不能为空！")
    private String bankNo;
    /**
     * 银行预留手机号
     */
    @NotBlank(message = "银行预留手机号不能为空！")
    private String bankAcctPhone;
    /**
     * 开户行银行卡正面
     */
    @NotBlank(message = "银行卡正面不能为空！")
    private String bankCardPositiveUrl;
    /**
     * 开户行银行卡正面
     */
    @NotBlank(message = "银行卡反面不能为空")
    private String bankCardBackUrl;


    // ------------------------------------------结算信息------------------------------------------
    /**
     * 规则编码
     */
    private String ruleCode;
    /**
     * 平台分佣百分比值
     */
    @NotNull(message = "抽佣金额不能为空")
    private BigDecimal platformPercent;
    /**
     * 清分周期类型：T=按日（如T+1），M=按月固定日（如每月10日）
     **/
    @NotNull(message = "清分周期类型不能为空")
    private String cycleType;
    /**
     * 清分周期值，cycle_type为T，cycle_value为1时代表T+1清分
     */
    @NotNull(message = "清分周期值不能为空")
    private Integer cycleValue;
    /**
     * 备注
     */
    private String clearRemark;

    // ------------------------------------------管理员信息------------------------------------------
    /**
     * 商户超级管理员
     */
    private PlatformMerchantUserDetailDTO merchantSuperAdmin;
    /**
     * 行业类别编码
     */
    private String mccCode;
    /**
     * 行业类别名称
     */
    private String mccName;
    /**
     * 商户进件状态（详细状态）
     * @see com.tiancheng.onecode.enums.MerchantRegStatusEnums
     */
    private Integer merchantRegStatus;

}
